Digital signals are often represented graphically as series of vertical line segments on a display. The line segments may represent the minimum and maximum range of values for a signal within a segment of time. Multiple line segments are arranged in order (adjacent to each other) to achieve an overview of a larger time period.
This is often performed in the context of displaying digital sound data; for example, digital sound data may be calculated as a series of data plots and displayed as a graph of multiple line or bar segments, each segment representing a value at a certain point in time. Using a display of this type, it would be possible to visualize the dynamic range of a digital sound file at 1 second, 2 seconds, 5 seconds, and so forth.
One approach to the visualization of digital signal data is to fully process the digital signal data, and then after all of the signal data is fully processed, to display a fully rendered visualization. This approach of synchronously calculating the data plot, and then displaying the visualization, results in the user waiting for processing to complete before any part of the visualization may be viewed. This is because for each time segment, all data must be read to determine the minimum and maximum data points to display. The more data to be displayed, the longer it will take to display the visualization. If the process is not threaded, then user interaction may not be possible until the data processing and subsequent visualization display is complete.
Another approach is to render the visualization asynchronously as the digital signal data is read. Using this approach builds the display gradually across the time period as data is read. While this gives a user immediate, accurate feedback on digital signal data, it is very processor-intensive. Further, the rendering of the visualization is very slow, as the visualization progresses along the axis representing time as the signal data is processed. Only when the digital signal data is fully processed is the entire visualization displayed. Much of the visualization is invisible until the process completes. If the process is not threaded, then user interaction may not be possible until the data processing and subsequent visualization display is complete.
While the aforementioned approach improves workflow by not stopping work waiting for display, a user does not receive a view of the full timeline of the data until the end of the process. This makes it difficult to navigate the data.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, the approaches described in this section may not be prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.